package biji;
/*
     spring容器：在xml中创建
            从概念上讲：Spring 容器是 Spring 框架的核心，是用来管理对象的。容器将创建对象，把它们连接在一起，配置它们，并管理他们的整个生命周期从创建到销毁。

            从具象化讲：在java项目中，我们使用实现了org.springframework.context.ApplicationContext接口的实现类。在web项目中，我们使用spring.xml——Spring的配置文件。

            从代码上讲：一个Spring容器就是某个实现了ApplicationContext接口的类的实例。也就是说，从代码层面，Spring容器其实就是一个ApplicationContext（一个实例化对象）。

    包含：
        1.IOC：控制反转（将对象的创建权交给Spring管理），之前创建不同类的对象一般是使用new进行创建。现在 通过spring容器，将java中类的创建权限交给spring容器管理
               控制反转：将类的创建权限交给了spring容器，spring容器中会将该类的对象自动创建（有源码创建方法？？）
                        1.其他的类先通过创建spring 容器的管理类ClassPathXmlApplicationContext（xml文件名）进行spring容器及spring容器中bean的操作
                        2.再使用getBean("id名")方法就可直接得到spring容器中已创建好的类

        2.DI ：依赖注入（将对象的属性赋值，对象依赖关系维护交给Spring）对spring容器中管理的类中的数据进行配置注入，spring容器根据被托管的类或者变量之间的依赖关系，而注入这个类的实例对象或者变量的值；

    依赖注入和控制反转的形式：
        1、属性依赖注入（对类中变量的配置）
                需要对该变量提供属性的setter方法接口；

                语法：
                     <!--
                        属性值的依赖注入：使用 <property>标签
                        变量的配置：要在对象类中先给要配置的变量提供setter方法，才可以配置变量
                        property标签用于配置bean中类的各种属性
                         对于 name 是对类中的变量 进行赋值，value用于赋确定的值

                     -->

        2、构造方法依赖注入
                需要提供对应参数个数的重载的构造方法；

                语法：
                      <!--
                        构造方法依赖注入：使用<constructor-arg>标签
                        在对应的类中先创建好要注入构造放方法（用所传参数区分）
                        value表示构造方法中所传的实参
                      -->

        3、绝对依赖注入：
                需要使用ref引用另外一个javabean（别的类 ）进行注入，两个bean(类)之间一般是组合关系（相互调用）

        注意：spring进行依赖注入时的依赖关系一般指的的是 类与类之间的 组合关系（类与类之间的创建调用）；
 */
public class BiJi {
}
